<?xml version='1.0'?>

<gl_extension name="GL_ARB_debug_output" reg_no="104">
	<typedefs>
		<typedef type="void" synonym="(GLLOADER_APIENTRY *GLDEBUGPROCARB)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, const void* userParam)"/>
	</typedefs>

	<tokens>
		<token name="GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB" value="0x8242"/>
		<token name="GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB" value="0x8243"/>
		<token name="GL_DEBUG_CALLBACK_FUNCTION_ARB" value="0x8244"/>
		<token name="GL_DEBUG_CALLBACK_USER_PARAM_ARB" value="0x8245"/>
		<token name="GL_DEBUG_SOURCE_API_ARB" value="0x8246"/>
		<token name="GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB" value="0x8247"/>
		<token name="GL_DEBUG_SOURCE_SHADER_COMPILER_ARB" value="0x8248"/>
		<token name="GL_DEBUG_SOURCE_THIRD_PARTY_ARB" value="0x8249"/>
		<token name="GL_DEBUG_SOURCE_APPLICATION_ARB" value="0x824A"/>
		<token name="GL_DEBUG_SOURCE_OTHER_ARB" value="0x824B"/>
		<token name="GL_DEBUG_TYPE_ERROR_ARB" value="0x824C"/>
		<token name="GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB" value="0x824D"/>
		<token name="GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB" value="0x824E"/>
		<token name="GL_DEBUG_TYPE_PORTABILITY_ARB" value="0x824F"/>
		<token name="GL_DEBUG_TYPE_PERFORMANCE_ARB" value="0x8250"/>
		<token name="GL_DEBUG_TYPE_OTHER_ARB" value="0x8251"/>
		<token name="GL_MAX_DEBUG_MESSAGE_LENGTH_ARB" value="0x9143"/>
		<token name="GL_MAX_DEBUG_LOGGED_MESSAGES_ARB" value="0x9144"/>
		<token name="GL_DEBUG_LOGGED_MESSAGES_ARB" value="0x9145"/>
		<token name="GL_DEBUG_SEVERITY_HIGH_ARB" value="0x9146"/>
		<token name="GL_DEBUG_SEVERITY_MEDIUM_ARB" value="0x9147"/>
		<token name="GL_DEBUG_SEVERITY_LOW_ARB" value="0x9148"/>
	</tokens>

	<functions>
		<function name="glDebugMessageControlARB" return="void">
			<params>
				<param type="GLenum" name="source"/>
				<param type="GLenum" name="type"/>
				<param type="GLenum" name="severity"/>
				<param type="GLsizei" name="count"/>
				<param type="const GLuint*" name="ids"/>
				<param type="GLboolean" name="enabled"/>
			</params>
		</function>
		<function name="glDebugMessageInsertARB" return="void">
			<params>
				<param type="GLenum" name="source"/>
				<param type="GLenum" name="type"/>
				<param type="GLuint" name="id"/>
				<param type="GLenum" name="severity"/>
				<param type="GLsizei" name="length"/>
				<param type="const GLchar*" name="buf"/>
			</params>
		</function>
		<function name="glDebugMessageCallbackARB" return="void">
			<params>
				<param type="GLDEBUGPROCARB" name="callback"/>
				<param type="GLvoid*" name="userParam"/>
			</params>
		</function>
		<function name="glGetDebugMessageLogARB" return="GLuint">
			<params>
				<param type="GLuint" name="count"/>
				<param type="GLsizei" name="bufsize"/>
				<param type="GLenum*" name="sources"/>
				<param type="GLenum*" name="types"/>
				<param type="GLuint*" name="ids"/>
				<param type="GLenum*" name="severities"/>
				<param type="GLsizei*" name="lengths"/>
				<param type="GLchar*" name="messageLog"/>
			</params>
		</function>
	</functions>
</gl_extension>
